თავი 3. მართვის ელემენტის დაპროექტება ფორმაზე. ინტერაქტიული Web-გვერდის შექმნა
3.1. მართვის ელემენტი DataGrid (გაგრძელება)

 
3.1.8.        მართვის ელემენტში დახარისხების განხორციელება პროგრამულად ზრდადობით და კლებადობით  

წინა მაგალითისგან განსხვავებით, მითითებულ ველებში მართვის ელემენტის ცხრილზე დაწკაპუნებისას მონაცემების დახარისხება ხორციელდება ზრდადობით ან კლებადობით.  
html კოდი შემდეგია
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
 </head><body>
    <form id="form1" runat="server">
    <div><br />
        &nbsp;<asp:DataGrid ID="DataGrid1" runat="server" AllowSorting="True" AutoGenerateColumns="False"
            Font-Names="AcadNusx">
            <Columns>
                <asp:TemplateColumn HeaderText="gvari" SortExpression="gvari">
                    <ItemTemplate>
                        <asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.gvari") %>'></asp:Label>
                    </ItemTemplate>                     
                </asp:TemplateColumn>
                <asp:TemplateColumn HeaderText="saxeli" SortExpression="saxeli">
                    <ItemTemplate>
                        <asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.saxeli") %>'></asp:Label>
                    </ItemTemplate>
                     </asp:TemplateColumn>
            </Columns></asp:DataGrid><br /> </div></form></body>
</html>
პროგრამული კოდი შემდეგია:
მონაცემების წყაროსთან დაკავშირება ხორციელდება წინა მაგალითში მოტანილი პროგრამით binddata;
გვერდის ჩატვირთვისთანავე მართვის ელემენტის შევსება მონაცემებით ხორციელდება წინა მაგალითში მოტანილი პროგრამით; 
დახარისხება ხორციელდება პროგრამით:
Protected Sub DataGrid1_SortCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridSortCommandEventArgs) Handles DataGrid1.SortCommand
        Me.ViewState("sort") = e.SortExpression
      If Me.DataGrid1.Columns(0).SortExpression = e.SortExpression _
        Or Me.DataGrid1.Columns(1).SortExpression = e.SortExpression Then
   If e.SortExpression.IndexOf("desc") <> -1 Then                Me.DataGrid1.Columns(0).SortExpression = Me.DataGrid1.Columns(0).SortExpression.Replace("  desc", "") 
‘ aq desc-is win unda iyos ori intervalis niSani
Me.DataGrid1.Columns(1).SortExpression = Me.DataGrid1.Columns(1).SortExpression.Replace("  desc", "") 
'აქაც desc-ის წინ უნდა იყოს ორი ინტერვალის ნიშანი
             Else                Me.DataGrid1.Columns(0).SortExpression += "  desc"  ‘'saWiroa iyos ori intervalis niSani
Me.DataGrid1.Columns(1).SortExpression += "  desc" 
' საჭიროა იყოს ორი ინტერვალის ნიშანი
       End If:  End If
    binddata()
    End Sub
3.1.9.        მონაცემების ბაზაში ცვლილებების განხორციელება მართვის ელემენტის DataGrid-ის საშუალებით 

მართვის ელემენტში DataGrid ჩაშენებულია მონაცემების ბაზაში ცვლილებების ჩატარების შესაძლებლობა. მაგ., მეხუთე სტრიქონის რედაქტირებისთვის საჭიროა მართვის ელემენტის DataGrid  თვისებას EditItemIndex მივანიჭოთ მნიშვნელობა 4 (სტიქონების ნომერაცია იწყება ნულიდან). რედაქტირების რეჟიმიდან გამოსასვლელად საჭიროა თვისებას  EditItemIndex მიანიჭოთ მნიშვნელობა -1. ყველაზე რთული მომენტია მონაცემების ბაზიდან მონაცემების მოძებნა და ცვლილების შეტანის შემდეგ მათი  ბაზაში ჩაწერა. 
რედაქტირების, რედაქტირების გაუქმების და რედაქტირებული მნიშვნელობის შენახვისთვის (EditCommand, CancelCommand,  UpdateCommand) DataGrid-Si გათვალისწინებულია სპეციალური ტიპის სვეტი ButtonColumn.
გვერდზე დაიტანეთ მართვის ელემენტი DataGrid;
ვიზუალური დაპროექტების რეჟიმში მართვის ელემენტზე დაიტანეთ სპეციალური  ტიპის სვეტი ButtonColumn;
ButtonColumn-ის სტრიქონებში ჩაწერეთ: რედაქტირება, შენახვა, გაუქმება. HTML კოდში მათ შეესაბამება:  EditText=„რედაქტირებa”; UpdateText=„შენახვა” CancelText=„გაუქმება” 
html კოდი შემდეგია:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
 </head><body>
    <form id="form1" runat="server">
    <div><br />
        <asp:DataGrid ID="DataGrid1" runat="server" AutoGenerateColumns="False">
            <Columns>
           <asp:EditCommandColumn CancelText="gauqmeba" EditText="redaqtireba" UpdateText="Senaxva">
                </asp:EditCommandColumn>
              <asp:BoundColumn DataField="nomeri" HeaderText="nomeri"></asp:BoundColumn>
                <asp:BoundColumn DataField="gvari" HeaderText="gvari"></asp:BoundColumn>
                <asp:BoundColumn DataField="saxeli" HeaderText="saxeli"></asp:BoundColumn>
            </Columns>
        </asp:DataGrid>         
         <br /></div></form></body>
</html>
მონაცემების ბაზიდან მონაცემების მოსაძებნად და მართვის ელემენტში გამოსატანად გამოვიყენოთ (დავწეროთ) მეთოდი (პროგრამა) binddata1. 
 Private Sub binddata1() ' redaqtirebisTvis
        Dim ds As DataSet = New DataSet()
        Dim conn As String = "Provider=Microsoft.Jet.OLEDB.4.0;data source=" _
        & Server.MapPath("ekonfakulteti.mdb")
        Dim da As OleDbDataAdapter = New OleDbDataAdapter("SELECT nomeri, gvari, saxeli FROM tbstudentiz", conn)
        da.Fill(ds)
        DataGrid1.DataSource = ds.Tables(0).DefaultView
        DataGrid1.DataKeyField = "nomeri"
        DataGrid1.DataBind()
    End Sub 
მონაცემების რედაქტირების და რედაქტირების.    გაუქმების დამმუშავებელი დაკავშირებულია შესაბამისად მოვლენებთან EditCommand, CancelCommand. აქ ხორციელდება თვისებისთვის EditItemIndex მნიშვნელობის მინიჭება.
    Protected Sub DataGrid1_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.EditCommand
        DataGrid1.EditItemIndex = e.Item.ItemIndex
        binddata()
    End Sub
 
Protected Sub DataGrid1_CancelCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.CancelCommand
        DataGrid1.EditItemIndex = -1
        binddata()
    End Sub

BoundColumn-ში მონაცემების დაკავშირების დროს გენერირებული ცხრილის ყველა უჯრაში ისმება ლიტერალი LiteralControl მონაცემებით მონაცემების ბაზის შესაბამისი ველიდან ან  მხოლოდ რედაქტირებული სტრიქონები.

3.1. 10. მართვის ელემენტში DataGrid მონაცემების წაშლა
თუ  DataGrid დაკავშირებულია მართვის ელემენტთან, მაშინ საჭიროა თვისებას RecordSource მიანიჭოთ "" (ცარიელი სტრიქონი) და შემდეგ გამოიყენოთ მეთოდი Refresh. 
Sub Command1_Click() 
Data1.RecordSource = "" 
'ვაყენებთ  RecordSource -ს ე.წ. ნულოვან წერტილში
Data1.Refresh 
SSDataGrid1.Refresh 
End Sub 
თუ DataGrid დაკავშირებული არ არის მართვის ელემენტთან, მაშინ თვისებისთვის Rows ნულის მინიჭება წაშლის მონაცემებს DataGrid-ში.

3.1.11. მართვის ელემენტში DataGrid-ის უჯრებისთვის ფერის და შრიფტის შეცვლა
ფერის და შრიფტის შეცვლა შესაძლებელია თვისებების (RowCellForeColor, RowCellBackColor, RowCellItalic) მნიშვნელობების შეცვლით. დავაკავშიროთ ცვლილებები ფორმის მოვლენასთან RowLoaded, რომელიც წამოიქმნება ფორმის პირველად ჩატვირთვის დროს. შემდეგ მაგალითში ნულოვანი სვეტი იქნება წითელი ფერის, შრიფტი კი –  დახრილი და თეთრი ფერის:
Sub DataGrid1_RowLoaded (BookMark As String, _ 
RowNum As Long) 
SSDataGrid1.RowCellForeColor(0) = _ 
RGB(255,255,255) 
SSDataGrid1.RowCellBackColor(0) = RGB(255,0,0) 
‘'striqonis feri gaxdeba wiTeli 
SSDataGrid1.RowCellItalics(0) = True 
‘'შრიფტი გახდება დახრილი 
End Sub 
შეიძლება თვისებაში EvalRowNumber მივუთითოთ სტრიქონების რაოდენობა და შემდეგ შევცვალოთ ფერის, შრიფტის პარამეტრები. 
Sub Command1_Click() 
SDataGrid1.EvalRowNumber = 10 
'სტრიქონების რაოდენობის მითითება 
SSDataGrid1.RowCellForeColor(2) = RGB(255,255,255) 
'მეორე სვეტში შრიფტი დაიწერება თეთრ ფერად
SSDataGrid1.RowCellBackColor(2) = RGB(255,0,0) 
'მეორე სვეტის ფონი წითელი გახდება
SSDataGrid1.RowCellItalics(2) = True 
'მეორე სვეტში ტექსტი დაიწერება დახრილად
End Sub